package Modelo;

import java.util.Collection;
import java.util.Iterator;

public class Portal implements Bloque {
	private Portal salida;
	private Alojador unAlojadorPersonaje;
	Mapa mapa;

	public Portal(Mapa mapa){
		unAlojadorPersonaje= new AlojadorPersonaje();
		this.mapa=mapa;
	}
	
	public void setearPortalSalida(Portal salida){
		this.salida=salida;
	}
	
	public void alojar(Personaje unPersonaje) {
		salida.unAlojadorPersonaje.alojar(unPersonaje);
	}

	public void desalojar(Personaje unPersonaje) {
		unAlojadorPersonaje.desalojar(unPersonaje);
	}

	public void destruir() {
		Collection<Personaje> aMatar= unAlojadorPersonaje.getAlojados();
		Iterator<Personaje> it= aMatar.iterator();
		while(it.hasNext())
			it.next().morir();
		Collection<Personaje> aMatar2= salida.unAlojadorPersonaje.getAlojados();
		Iterator<Personaje> it2= aMatar2.iterator();
		while(it2.hasNext())
			it2.next().morir();
		mapa.ModificarBloquePor(this, new Vacio(mapa));
		mapa.ModificarBloquePor(salida, new Vacio(mapa));
	}

	public boolean esFirme() {
		return false;
	}

	public boolean estaAlojado(Personaje unPersonaje) {
		return this.unAlojadorPersonaje.estaAlojado(unPersonaje);
	}

	public Collection<Personaje> getAlojados() {
		return unAlojadorPersonaje.getAlojados();
	}

	public Numeros velocidadFinal(Numeros velocidad) {
		return new Real(Constantes.velocidad);
	}

	public void atacar(Numeros potenciaDelAtaque) {
	}

}
